
package com.fire.web.modules.all.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.fire.web.modules.all.entity.SiteModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * SiteDao
 *
 * @author Matthew
 * @Date 2019-01-17 20:50
 */
@Mapper
public interface SiteMapper extends BaseMapper<SiteModel> {

	/**
	 * 根据实体查询列表
	 * @param model 实体
	 * @return
	 */
	List<SiteModel> selectListByModel(@Param("e") SiteModel model);


	/**
	 * 查询站点详情
	 * @param siteId 站点ID
	 * @return
	 */
	Map querySiteDetail(@Param("siteId") String siteId);

	/**
	 *
	 * @param page
	 * @param column
	 * @param columbValue
	 * @return
	 */
	List<Map<String,Object>> querySiteList(Pagination page, @Param("column") String column, @Param("columbValue") String columbValue);

	/**
	 * 查询我管理的维保单位列表
	 * @param page
	 * @param supervisorId
	 * @return
	 */
	List<Map<String,Object>> queryMyMaitainorsList(Pagination page, @Param("supervisorId") String supervisorId);

	/**
	 * 查询我管理的业主单位列表
	 * @param page
	 * @param supervisorId
	 * @return
	 */
	List<Map<String,Object>> queryMyProprietorsList(Pagination page, @Param("supervisorId") String supervisorId);

	/**
	 * 根据业主单位的AdminId查询站点列表
	 * @param page 分页参数
	 * @param proprietorAdminId 业主单位的AdminId
	 * @return
	 */
	List<SiteModel> querySiteByProprietorAdminId(Pagination page, @Param("proprietorAdminId") String proprietorAdminId,@Param("ew") Wrapper<SiteModel> modelWrapper);

	/**
	 * 根据业维保位的AdminId查询站点列表
	 * @param page 分页参数
	 * @param maintainorAdminId 业维保位的AdminId
	 * @return
	 */
	List<SiteModel> querySiteByMaintainorAdminId(Pagination page, @Param("maintainorAdminId") String maintainorAdminId,@Param("ew") Wrapper<SiteModel> modelWrapper);

	/**
	 * 根据监管单位的AdminId查询站点列表
	 * @param page 分页参数
	 * @param supervisorAdminId 监管单位的AdminId
	 * @return
	 */
	List<SiteModel> querySiteBySupervisorAdminId(Pagination page, @Param("supervisorAdminId") String supervisorAdminId,@Param("ew") Wrapper<SiteModel> modelWrapper);

}
